package com.lianniu.mgr.projectMgr.projectInfo.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import com.lianniu.mgr.base.BaseResult;
import com.lianniu.mgr.baseService.staff.dao.IStaffMapperDao;
import com.lianniu.mgr.baseService.staff.model.StaffVo;
import com.lianniu.mgr.constants.ErrorCode;
import com.lianniu.mgr.projectMgr.projectInfo.dao.IProjectStaffMapperDao;
import com.lianniu.mgr.projectMgr.projectInfo.model.ProjectStaffVo;
import com.lianniu.mgr.projectMgr.projectInfo.service.IProjectStaffService;
import com.lianniu.mgr.util.StringUtil;
import org.springframework.stereotype.Service;

@Service
public class ProjectStaffServiceImpl implements IProjectStaffService {

	@Resource
	IProjectStaffMapperDao projectStaffMapper;

	@Resource
	IStaffMapperDao staffMapper;
  
	/**
	 * @Description:获取项目人员分页记录信息
	 * @param projectStaff 项目人员信息
	 * @return BaseResult(List<ProjectStaffVo>) 获取记录列表

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult getProjectStaffsByVoForPage(ProjectStaffVo projectStaff) {
		List<ProjectStaffVo> list = projectStaffMapper.getProjectStaffsByVoForPage(projectStaff);
		Map<String, Object> retmap = new HashMap<String, Object>();
	    retmap.put("total", projectStaff.getPaginationInfo().getTotalRecord());
	    retmap.put("curPage", projectStaff.getPaginationInfo().getCurPage());
	    retmap.put("rows", list);
	    return BaseResult.success(retmap);
	}
  
	/**
	 * @Description:获取项目人员记录信息
	 * @param projectStaff 项目人员信息
	 * @return BaseResult(List<ProjectStaffVo>) 获取记录列表

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult getProjectStaffsByVo(ProjectStaffVo projectStaff) {
	    return BaseResult.success(projectStaffMapper.getProjectStaffsByVo(projectStaff));
	}
	
	/**
	 * @Description:添加项目人员记录
	 * @param projectStaff 项目人员信息
	 * @return BaseResult

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult addProjectStaff(ProjectStaffVo projectStaff) {
		return BaseResult.success(projectStaffMapper.addProjectStaff(projectStaff));
	}
  
	/**
	 * @Description:批量添加项目人员记录
	 * @param list 项目人员信息列表
	 * @return BaseResult

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult addProjectStaffs(List<ProjectStaffVo> list) {
	    return BaseResult.success(projectStaffMapper.addProjectStaffs(list));
	}
  
	/**
	 * @Description:更新项目人员记录
	 * @param projectStaff 项目人员信息
	 * @return BaseResult

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult editProjectStaffById(ProjectStaffVo projectStaff) {
		BaseResult baseResult;
		if (StringUtil.isEmpty(projectStaff.getId())) {
	      baseResult = BaseResult.fail(ErrorCode.ParaCheckErrorRetCode, ErrorCode.ParaCheckErrorRetInfo);
	      return baseResult;
	    }
	    return BaseResult.success(projectStaffMapper.editProjectStaffById(projectStaff));
	}
  
	/**
	 * @Description:根据项目人员id列表批量删除项目人员记录
	 * @param ids 项目人员id列表
	 * @return BaseResult

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult delProjectStaffsByIds(List<String> ids) {
	    return BaseResult.success(projectStaffMapper.delProjectStaffsByIds(ids));
	}
  
	/**
	 * @Description:查询内部人员详细信息列表
	 * @param staffVo 内部人员
	 * @return BaseResult

	 * @Date:2016年4月13日下午8:36:19
	 * @Version 1.0.0
	 */
	@Override
	public BaseResult getStaff(StaffVo staffVo) {
	    return BaseResult.success(staffMapper.getStaff(staffVo));
	}
  
}
